iOS 逆向<4>:Cycript的介绍和使用

简介

Cycript官网

Cycript是由saurik推出的一款运行在越狱iPhone上的脚本语言,是混合了objective-c与javascript语法的一个工具,让开发者在命令行下和应用交互,在运行时查看和修改应用。

Cycript安装

Cydia中搜索Cycript直接安装

使用

需要先查找到相应的进行,才能进入,下面以Weibo.app为例

ps -e | grep -i weibo

我们可以看到Weibo.app的进程id是3518,

输入 cycript -p 进程id,下面一行变成cy#,就表示可以输入脚本语言了

cycript -p 3518

退出cycript,没错带有?

?exit

详细使用

想要在Weibo.app界面弹出一个提示框,用cycript的话,只要两句代码就可以了,而且是实时注入的。

cy# alertView = [[UIAlertView alloc] initWithTitle:@"Cycript injection Weibo" message:@"Success" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]
cy# [alertView show]

可以在手机上立马看到效果了:

获取视图结构

UIApp.keyWindow.recursiveDescription().toString()

可以看到视图结构,知识比较复杂

结合Reveal我们知道微博的TabBar是自定义的结构WBTabBarButton,下面我们把第一个TabBar的文字换成”TaoBao”

cy# #0x1105baca0
#"<WBTabBarButton: 0x1105baca0; baseClass = UIButton; frame = (64 0; 64 44); opaque = NO; layer = <CALayer: 0x1105b6590>>"

可以看到WBTabBarButton是UIButton的子类,所以我们通过

[#0x1105baca0 setTitle:@"TaoBao" forState:0]

可以看到已经有效果了,Cycript可以实现无侵入,修改代码了

您的支持将鼓励我继续创作!